package projeto.comercial.gerenciaatividade.cci;

import org.springframework.beans.factory.annotation.Autowired;

import plataforma.base.cdp.Criterio;
import plataforma.base.cdp.ObjetoPagina;
import plataforma.base.cdp.Criterio.Tipo;
import plataforma.crud.cgt.ServiceCrud;
import plataforma.crudestatico.cci.CtrlCrudEstatico;
import plataforma.crudestatico.cih.FormularioDadosCRUDEstatico;
import plataforma.crudestatico.cih.PainelCRUDEstatico;
import plataforma.spring.ControladorDefault;
import projeto.comercial.gerenciaatividade.cgt.ServiceAtividade;
import projeto.comercial.gerenciaatividade.cih.FormDadosAtividade;
import projeto.comercial.gerenciaatividade.cih.PainelGerenciarAtividades;
import projeto.comercial.gerenciarservico.cci.CtrlGerenciarServicos;
import projeto.comercial.gerenciarservico.cdp.Atividade;
import projeto.comercial.gerenciarservico.cdp.Servico;

@ControladorDefault
public class CtrlGerenciarAtividades extends CtrlCrudEstatico<Atividade> {

	Servico servicoSelecionado;
	CtrlGerenciarServicos ctrlServico;

	@Autowired
	ServiceAtividade service;

	@Override
	public String definirTituloJanelaDados() {
		return "Atividade";
	}

	@Override
	public String definirTituloJanelaListagem() {
		return "Gerenciar Atividades";
	}

	@Override
	public ServiceCrud<Atividade> getServiceCrud() {
		return service;
	}

	@Override
	public PainelCRUDEstatico<Atividade> definirPainelCRUD() {
		return new PainelGerenciarAtividades();
	}

	@Override
	public FormularioDadosCRUDEstatico<Atividade> definirFormularioCadastro() {
		return new FormDadosAtividade();
	}

	@Override
	public Atividade factoryObjetoDados() {
		
		Atividade a =new Atividade();
		a.setServico(servicoSelecionado);
		return a;
	}

	public void setCtrlGerenciarServico(
			CtrlGerenciarServicos ctrlGerenciarServicos) {
		this.ctrlServico = ctrlGerenciarServicos;

	}

	public void setServico(Servico servicoSelecionado) {
		this.servicoSelecionado = servicoSelecionado;
	}

	@Override
	public void atualizarListagem(ObjetoPagina pagina) {
		// Sempre pesquisa como criterio o id do servico
		Criterio criterioServico = new Criterio("servico.id", Tipo.OBJETO,servicoSelecionado.getId());
		pagina.getCriteriosSimples().add(criterioServico);
		super.atualizarListagem(pagina);
	}

}
